package me.helllp.bootman.common.convert;

import java.util.HashMap;
import java.util.Map;

import org.springframework.core.convert.converter.Converter;

import me.helllp.bootman.common.base.IBaseEnum;

public class IntegerStrToEnum<T extends IBaseEnum<?>> implements Converter<String, T> {

	//	存储当前类型的值与Enum的映照关系
    private Map<String, T> enumMap = new HashMap<>();  

    public IntegerStrToEnum(Class<T> enumType) {  
        T[] enums = enumType.getEnumConstants();  
        for(T e : enums) {  
            enumMap.put(e.getValue() + "", e);  
        }  
    }  


    @Override  
    public T convert(String source) {  
        T result = enumMap.get(source);  
        if(result == null) {  
            throw new IllegalArgumentException("不能解析此参数：" + source);  
        }  
        return result;  
    }  
}
